#!/usr/bin/env python
"""
##############################################################################
用法：./visitor_edit.py rootdir string
对SearchVisitor添加一个作为外部子类组分的编辑器自动启动行为；在遍历过程中对含有字符串的每个
文件自动弹出一个编辑器。
##############################################################################
"""

import os
import sys
from visitor import SearchVisitor


class EditVisitor(SearchVisitor):
    """
    编辑startDir及其子目录下含有字符串的文件
    """

    if sys.platform[:3] == 'win':
        editor = 'edit'
    else:
        editor = 'vim'  # 你的计算机上可能有所不同

    def visitMatch(self, fp, text):
        input('编辑 {}'.format(fp))
        os.system('{} {}'.format(self.editor, fp))


def main():
    visitor = EditVisitor(sys.argv[2])
    visitor.run(sys.argv[1])
    print('访问了', visitor.fileCount, '个文件，编辑了', visitor.searchCount, '个。')


if __name__ == '__main__':
    main()
